Method of barcode templating for enhanced decoding performance

ABSTRACT

An exemplary method of decoding a barcode uses a barcode template of known fixed fields in the barcode to enhance error correction in decoding of the barcode. A barcode having encoded data is scanned with an exemplary electronic device including a barcode scanner, a memory, and a barcode template stored in the memory. The barcode template includes fixed data fields and variable data fields. The barcode&#39;s encoded data are sampled into a codeword array, and a barcode template that matches the format of the scanned barcode is selected. Typically, error correction is then performed on the codeword array, and the error-corrected codeword array is then outputted.

CROSS-REFERENCE TO PRIORITY APPLICATIONS

This U.S. nonprovisional application is a continuation of U.S. patentapplication Ser. No. 14/965,973 filed Dec. 11, 2015, which claims thebenefit of U.S. Patent Application Ser. No. 62/095,808 for a Method ofBarcode Templating for Enhanced Decoding Performance (filed Dec. 23,2014), each of which is hereby incorporated by reference in itsentirety.

FIELD OF THE INVENTION

The present specification relates to scanning and decoding of printedbarcodes by electronic devices, such as portable data terminals,personal digital assistants, and computers. More particularly, thespecification is directed to a method of barcode templating for enhanceddecoding performance.

BACKGROUND

A common problem in bar code design, and particularly with PDF417formatted barcodes, is insufficient error correction codes for the sizeof the barcode. This lack of sufficient error correction affects thereadability of the barcode. The issue is further exacerbated by printingerrors and/or damage to the barcode itself, which consequently canrender these barcodes unreadable. Accordingly, there is a need toenhance the readability of barcodes that lack sufficient errorcorrection.

SUMMARY

In one aspect, a method of decoding a barcode uses a barcode applicationspecification that defines one or more bar code templates used in anapplication. A barcode template enhances error correction by storing anyknown fixed data used in every bar code matching that particular barcodetemplate. A barcode having encoded data is scanned with an electronicdevice having a barcode scanner, a memory, and one or more barcodetemplates stored in the memory. A barcode template includes fixed fieldsof data common to every bar code matching that particular template andopen fields indicating where the data are variable and unique for everybar code matching that particular template. The barcode scanner furtherincludes barcode scanning software operative to apply a barcode templateto correct the fixed field areas with the known data. This reduces theinformation reliant on the error correction, if error correction ispresent in the particular code, and enhances the error correction of thebarcode.

In use, a barcode that is formatted according to one of the templatesfrom the barcode application specification is scanned, and the scanneddata is stored in a codeword array. A barcode template that matches theformat of the scanned barcode is then selected. The barcode template isapplied to the scanned barcode by using the fixed data fields of thebarcode template to replace the scanned codeword data in the codewordarray, thereby creating a corrected codeword array. If error correctionis used in the particular symbology, error correction is then performedon the corrected codeword array. If the error correction processsucceeds, the resulting error-corrected codeword array is then used togenerate an output message.

One exemplary embodiment of the method described herein relieves some ofthe burden of the error correction in these codes, because the fixeddata fields of the codeword data are guaranteed to be accurate and thusonly the variable information in the barcode must be checked. Byreducing the data that the error correction must accommodate, thisexemplary method provides significant benefits where limited errorcorrection affects the readability of certain barcodes.

The foregoing illustrative summary, as well as other exemplaryobjectives and/or advantages of the invention, and the manner in whichthe same are accomplished, are further explained within the followingdetailed description and its accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

An exemplary embodiment will now be described further by way of examplewith reference to the following examples and figures, which are intendedto be illustrative only and not limiting upon the scope of thedisclosure.

FIG. 1A is a perspective view of an exemplary embodiment of anelectronic device that includes software operative for enhanced decodingperformance of a barcode using a barcode template.

FIG. 1B is a block diagram of an exemplary embodiment of an electronicdevice that includes software operative for enhanced decodingperformance of a barcode using a barcode template;

FIG. 2 is a view of a prior art two-dimensional barcode formatted inPDF417 format.

FIG. 3A is a view of a prior art two-dimensional barcode in a DataMatrix.

FIG. 3B is a view of a prior art two-dimensional barcode in MaxiCodeformat.

FIG. 3C is a view of a prior art two-dimensional barcode in Aztec Codeformat.

FIG. 3D is a view of a prior art two-dimensional barcode in QR Codeformat.

FIG. 3E is a view of a prior art two-dimensional barcode in SemacodeData Matrix format;

FIG. 3F is a view of a prior art two-dimensional barcode in HighCapacity Color Barcode format.

FIG. 4 is an illustration of an exemplary embodiment of a barcodetemplate according to the method described herein.

FIG. 5 is a flowchart illustrating an exemplary embodiment of the methodof decoding a barcode described herein.

FIG. 6 is a flowchart illustrating an exemplary method of decoding abarcode using an electronic device.

DETAILED DESCRIPTION

Generally, the present method of decoding a barcode uses a barcodetemplate of known fixed fields in the barcode to enhance errorcorrection in decoding of the barcode.

A barcode having encoded data is scanned with an exemplary electronicdevice including a barcode scanner, a memory, and a barcode templatestored in the memory. The barcode template includes fixed data fields(e.g., mask fields) and variable data fields (e.g., open fields). Thebarcode's encoded data are sampled into a codeword array, and a barcodetemplate that matches the format of the scanned barcode is selected. Thetemplate is applied to the codeword array to correct (e.g., toautocorrect) the fixed data fields of the codeword array. That is, thebarcode template is applied to the codeword array to correct the areasin the codeword array that correspond to the fixed data fields of thetemplate. Typically, error correction is then performed on the codewordarray, and the error-corrected codeword array is then outputted.

Referring to FIGS. 1A and 1B, an exemplary electronic device is shownand illustrated at 100. The electronic device includes a barcode scanner102, a memory 104, and a barcode template 106 stored in the memory 104.A processor 108 is operative to run barcode scanning software (orfirmware) 110 also stored on the electronic device 100.

Although an exemplary handheld scanner with a pistol grip 102 is shown,the electronic device 100 can have several different form factors, suchas in-counter scanners, hands-free scanners, healthcare mobilecomputers, industrial hazardous location mobile computers, industrialbarcode scanners, wireless barcode scanners, industrial cold storagemobile computers, and non-mobile computer scanner solutions.Accordingly, the handheld scanner exemplified in FIG. 1 is by way ofexample and not of limitation.

Referring to FIG. 2, an exemplary two-dimensional barcode is shown inPDF417, a stacked linear format that can support three to ninety rows ofencoded information. Each row of the barcode includes a start pattern, aleft row indicator, data codewords, a right row indicator, and a stoppattern. The left row indicator includes additional information, such aserror correction information and the row number. The right row indicatormay include additional information about the row. PDF417 is furtherdescribed in ISO standard 15438, which is hereby incorporated byreference in its entirety.

Referring to FIGS. 3A-F, other configurations of two-dimensionalbarcodes may be used with the disclosed method, including matrixbarcodes such as Data Matrix format (FIG. 3A), MaxiCode Format (FIG.3B), Aztec Code format (FIG. 3C), QR Code format (FIG. 3D), SemacodeData Matrix format (FIG. 3E), and Microsoft High Capacity Color Format(FIG. 3F), as well as variations thereof. Data Matrix may be in DataMatrix version ECC 200 format or versions ECC 000-140 format as desired.

Although this exemplary method is described in relation to several knowntwo-dimensional barcode technologies, the method applies to many kindsof information bearing indicia, including linear bar codes (e.g., Code39, Code 128, etc.), stacked linear bar codes (e.g., PDF417, Codablock,etc.) two-dimensional matrix symbologies (e.g., Aztec, QR Code, etc.),postal codes (e.g., PostNet, Intelligent Mail bar code, etc.), opticalcharacter recognition, and other information bearing indiciasymbologies. The examples of various barcodes in FIGS. 2 and 3A-F anddescribed herein are provided by way of example and not of limitation.

Regardless of which barcode is used, a user who develops an applicationthat involves reading a barcode—especially larger scale stacked codeslike PDF417 or 2D matrix codes—will include a barcode applicationspecification, which contains barcode templates defining the fields ofthe one or more kinds of barcodes. For example, these templates mayinclude fixed data fields like headers, field names, separators, orother like data that do not vary from barcode to barcode. Thesetemplates may also include variable data fields. The variable datafields defined in the barcode specification, such as names, addresses,customer numbers, lot numbers, manufacturing date, and/or other variabledata fields, make up only part of the total information in the barcodetemplates of the barcode application specification.

Referring to FIG. 4, an exemplary barcode template is shown generally at400. The barcode template 400 include fixed data fields 402, whichpertain to the fixed fields of a barcode used in an application as perthe barcode application specification, and variable data fields 404,which are indicated here by “#” sign, although other symbols may beused. The variable data fields pertain to the data that will vary in thebarcodes used in an application as per the barcode applicationspecification.

FIG. 5 is a flowchart illustrating an exemplary method embodiment. Thebarcode template is loaded onto the electronic device via aconfiguration command, SDK call, or some other kind of entry prior toscanning. This barcode template is stored in memory of the electronicdevice and used during barcode decoding. There could be one or moredifferent barcode templates stored for application to various formats ofvarious symbologies, which the user could scan.

The barcode is scanned with the barcode scanner 102 of the electronicdevice 100. The barcode includes data encoded according to the barcodeapplication specification. The electronic device then samples orotherwise extracts the codeword data of the scanned barcode into acodeword array.

A barcode application specification may have several templates defined,all of which may be stored in the memory 104 of electronic device 100.When deciding which template to apply to a specific set of codeworddata, either all codes of a specific symbology could have the templateapplied or a decision of when to apply the template could be made basedon dimensions of the bar code, error correction levels, or a comparisonof the raw data against the template. Where the symbology used includeserror correction, the template may also be applied before or after aninitial error correction attempt on the sampled data.

The barcode template 400 is applied to the sampled codeword data byoverwriting the known information (i.e., fixed data fields 402) into thecorresponding data locations of the raw data codeword array, thusensuring the accuracy of the fixed data fields of the codeword array.The data locations of the codeword array corresponding to the variabledata fields of the barcode template are not disturbed. These actions areapplied according to the template fields 404 of the barcode template400.

Because the fixed data fields of the codeword array are correct, errorcorrection, if supported by the symbology used, is only needed for theareas of the code with variable data fields, thus increasing readabilityof these barcodes. When the error correction of the codeword arraysucceeds, the resulting error-corrected codeword array is then used togenerate an output message.

FIG. 6 is a flowchart illustrating another exemplary method embodiment.As shown in FIG. 6, the user would have an electronic device preloadedwith barcode templates and firmware operative to apply the barcodetemplate to the scanned barcode.

In an exemplary embodiment, the method efficiently processes moreadvanced kinds of barcodes, such as PDF417 and Data Matrix, that employencodation modes as per the specific barcode encodation specificationfor a given symbology (e.g., ISO standard 15438 for PDF417). The purposeof these encodation modes is to compress as much data into as few bytesas possible.

Those having ordinary skill in the art will understand that a bar codemessage itself is different from the physical values of codewords thatare stored in the bar code. For bar codes that do not have encodingmodes, a bar code message (e.g., 123456) would have only one way to beencoded. In contrast, bar codes with encodation modes may encode that ina specified numeric compaction mode (e.g., only values 0-9) or textcompaction mode (e.g., printable ASCII characters with a few specialcharacters), and perhaps in other modes (e.g., byte modes). To apply thebarcode template to codewords to facilitate decoding of barcodeemploying a barcode encodation specification, one should know more aboutthe bar code than just the data or the template of the data. If theencodation mode(s) for how the data are encoded is unknown, how to applythe barcode template to a specific bar code to decode the bar code isuncertain.

Actual encoded codeword values, which may include mode information and acompressed version of the actual data, can seed the barcode templateinstead of basing the barcode template on the specific output data. Byway of illustration, a general PDF417 templating system can beestablished to template the encoded data instead of the message data,thereby resulting in a general-rules template for PDF417 that can applyto every PDF417 barcode. The PDF417 specification requires that abarcode begin with a length codeword (i.e., the first data codewordindicates the number of data codewords in the entire data message). Thisinformation is redundant, however, from the height, width, anderror-correction level of the barcode, which are already encoded in the“row indicators.” This information is known without considering thespecific codeword data encoded. Thus, if the first codeword does notcomport with what the data length determined from the redundant data(e.g., height, width, and error-correction level of the barcode), thenit is probable that the codeword is wrong, in which case the correctcodeword value can be restored.

Furthermore, PDF417 use a format for “padding” information at the end ofa message (i.e., a set of empty data codewords referred to as “padcodewords”), which are intended to complete the physical matrix.Although the pad codewords have no message value associated with them,pad codewords are included in the error correction calculation, andgetting them wrong incurs error-correction penalties. A section of padcodewords has a distinct signature, indicating that every codeword afterit in the data codewords is a pad codeword, regardless of the actualcodeword values.

Processing these advanced barcodes using templates associated with abarcode encodation specification is especially useful whenerror-correction of sampled, encoded data has failed. Attempting errorcorrection on the sampled data is advisable, for example, in case abarcode fails to adhere to the barcode encodation specificationestablished for a given symbology.

In summary, it can be appreciated from the foregoing description andillustrations that the disclosed method of decoding enhances thereadability of barcodes lacking sufficient error correction. By applyinga template to the decoded codeword array and automatically replacing theknown fixed fields with the fixed data, the known fixed fields areguaranteed to be accurate, leaving the subsequent error correction stepsto focus upon the variable data fields. Not only is the decoded barcodemore accurate, but fewer error-correction processing steps results infaster decoding. For these reasons, the exemplary method of decoding abarcode using a barcode template is believed to represent significantadvancements having substantial commercial merit.

To supplement the present disclosure, this application incorporatesentirely by reference the following patents, patent applicationpublications, and patent applications:

-   U.S. Pat. Nos. 6,832,725; 7,128,266; 7,159,783; 7,413,127;    7,726,575; 8,294,969; 8,317,105; 8,322,622; 8,366,005; 8,371,507;    8,376,233; 8,381,979; 8,390,909; 8,408,464; 8,408,468; 8,408,469;    8,424,768; 8,448,863; 8,457,013; 8,459,557; 8,469,272; 8,474,712;    8,479,992; 8,490,877; 8,517,271; 8,523,076; 8,528,818; 8,544,737;    8,548,242; 8,548,420; 8,550,335; 8,550,354; 8,550,357; 8,556,174;    8,556,176; 8,556,177; 8,559,767; 8,599,957; 8,561,895; 8,561,903;    8,561,905; 8,565,107; 8,571,307; 8,579,200; 8,583,924; 8,584,945;    8,587,595; 8,587,697; 8,588,869; 8,590,789; 8,596,539; 8,596,542;    8,596,543; 8,599,271; 8,599,957; 8,600,158; 8,600,167; 8,602,309;    8,608,053; 8,608,071; 8,611,309; 8,615,487; 8,616,454; 8,621,123;    8,622,303; 8,628,013; 8,628,015; 8,628,016; 8,629,926; 8,630,491;    8,635,309; 8,636,200; 8,636,212; 8,636,215; 8,636,224; 8,638,806;    8,640,958; 8,640,960; 8,643,717; 8,646,692; 8,646,694; 8,657,200;    8,659,397; 8,668,149; 8,678,285; 8,678,286; 8,682,077; 8,687,282;    8,692,927; 8,695,880; 8,698,949; 8,717,494; 8,717,494; 8,720,783;    8,723,804; 8,723,904; 8,727,223; D702,237; 8,740,082; 8,740,085;    8,746,563; 8,750,445; 8,752,766; 8,756,059; 8,757,495; 8,760,563;    8,763,909; 8,777,108; 8,777,109; 8,779,898; 8,781,520; 8,783,573;    8,789,757; 8,789,758; 8,789,759; 8,794,520; 8,794,522; 8,794,525;    8,794,526; 8,798,367; 8,807,431; 8,807,432; 8,820,630; 8,822,848;    8,824,692; 8,824,696; 8,842,849; 8,844,822; 8,844,823; 8,849,019;    8,851,383; 8,854,633; 8,866,963; 8,868,421; 8,868,519; 8,868,802;    8,868,803; 8,870,074; 8,879,639; 8,880,426; 8,881,983; 8,881,987;    8,903,172; 8,908,995; 8,910,870; 8,910,875; 8,914,290; 8,914,788;    8,915,439; 8,915,444; 8,916,789; 8,918,250; 8,918,564; 8,925,818;    8,939,374; 8,942,480; 8,944,313; 8,944,327; 8,944,332; 8,950,678;    8,967,468; 8,971,346; 8,976,030; 8,976,368; 8,978,981; 8,978,983;    8,978,984; 8,985,456; 8,985,457; 8,985,459; 8,985,461; 8,988,578;    8,988,590; 8,991,704; 8,996,194; 8,996,384; 9,002,641; 9,007,368;    9,010,641; 9,015,513; 9,016,576; 9,022,288; 9,030,964; 9,033,240;    9,033,242; 9,036,054; 9,037,344; 9,038,911; 9,038,915; 9,047,098;    9,047,359; 9,047,420; 9,047,525; 9,047,531; 9,053,055; 9,053,378;    9,053,380; 9,058,526; 9,064,165; 9,064,167; 9,064,168; 9,064,254;    9,066,032; 9,070,032;-   U.S. Design Pat. No. D716,285;-   U.S. Design Pat. No. D723,560;-   U.S. Design Pat. No. D730,357;-   U.S. Design Pat. No. D730,901;-   U.S. Design Pat. No. D730,902;-   U.S. Design Pat. No. D733,112;-   U.S. Design Pat. No. D734,339;-   International Publication No. 2013/163789;-   International Publication No. 2013/173985;-   International Publication No. 2014/019130;-   International Publication No. 2014/110495;-   U.S. Patent Application Publication No. 2008/0185432;-   U.S. Patent Application Publication No. 2009/0134221;-   U.S. Patent Application Publication No. 2010/0177080;-   U.S. Patent Application Publication No. 2010/0177076;-   U.S. Patent Application Publication No. 2010/0177707;-   U.S. Patent Application Publication No. 2010/0177749;-   U.S. Patent Application Publication No. 2010/0265880;-   U.S. Patent Application Publication No. 2011/0202554;-   U.S. Patent Application Publication No. 2012/0111946;-   U.S. Patent Application Publication No. 2012/0168511;-   U.S. Patent Application Publication No. 2012/0168512;-   U.S. Patent Application Publication No. 2012/0193423;-   U.S. Patent Application Publication No. 2012/0203647;-   U.S. Patent Application Publication No. 2012/0223141;-   U.S. Patent Application Publication No. 2012/0228382;-   U.S. Patent Application Publication No. 2012/0248188;-   U.S. Patent Application Publication No. 2013/0043312;-   U.S. Patent Application Publication No. 2013/0082104;-   U.S. Patent Application Publication No. 2013/0175341;-   U.S. Patent Application Publication No. 2013/0175343;-   U.S. Patent Application Publication No. 2013/0257744;-   U.S. Patent Application Publication No. 2013/0257759;-   U.S. Patent Application Publication No. 2013/0270346;-   U.S. Patent Application Publication No. 2013/0287258;-   U.S. Patent Application Publication No. 2013/0292475;-   U.S. Patent Application Publication No. 2013/0292477;-   U.S. Patent Application Publication No. 2013/0293539;-   U.S. Patent Application Publication No. 2013/0293540;-   U.S. Patent Application Publication No. 2013/0306728;-   U.S. Patent Application Publication No. 2013/0306731;-   U.S. Patent Application Publication No. 2013/0307964;-   U.S. Patent Application Publication No. 2013/0308625;-   U.S. Patent Application Publication No. 2013/0313324;-   U.S. Patent Application Publication No. 2013/0313325;-   U.S. Patent Application Publication No. 2013/0342717;-   U.S. Patent Application Publication No. 2014/0001267;-   U.S. Patent Application Publication No. 2014/0008439;-   U.S. Patent Application Publication No. 2014/0025584;-   U.S. Patent Application Publication No. 2014/0034734;-   U.S. Patent Application Publication No. 2014/0036848;-   U.S. Patent Application Publication No. 2014/0039693;-   U.S. Patent Application Publication No. 2014/0042814;-   U.S. Patent Application Publication No. 2014/0049120;-   U.S. Patent Application Publication No. 2014/0049635;-   U.S. Patent Application Publication No. 2014/0061306;-   U.S. Patent Application Publication No. 2014/0063289;-   U.S. Patent Application Publication No. 2014/0066136;-   U.S. Patent Application Publication No. 2014/0067692;-   U.S. Patent Application Publication No. 2014/0070005;-   U.S. Patent Application Publication No. 2014/0071840;-   U.S. Patent Application Publication No. 2014/0074746;-   U.S. Patent Application Publication No. 2014/0076974;-   U.S. Patent Application Publication No. 2014/0078341;-   U.S. Patent Application Publication No. 2014/0078345;-   U.S. Patent Application Publication No. 2014/0097249;-   U.S. Patent Application Publication No. 2014/0098792;-   U.S. Patent Application Publication No. 2014/0100813;-   U.S. Patent Application Publication No. 2014/0103115;-   U.S. Patent Application Publication No. 2014/0104413;-   U.S. Patent Application Publication No. 2014/0104414;-   U.S. Patent Application Publication No. 2014/0104416;-   U.S. Patent Application Publication No. 2014/0104451;-   U.S. Patent Application Publication No. 2014/0106594;-   U.S. Patent Application Publication No. 2014/0106725;-   U.S. Patent Application Publication No. 2014/0108010;-   U.S. Patent Application Publication No. 2014/0108402;-   U.S. Patent Application Publication No. 2014/0110485;-   U.S. Patent Application Publication No. 2014/0114530;-   U.S. Patent Application Publication No. 2014/0124577;-   U.S. Patent Application Publication No. 2014/0124579;-   U.S. Patent Application Publication No. 2014/0125842;-   U.S. Patent Application Publication No. 2014/0125853;-   U.S. Patent Application Publication No. 2014/0125999;-   U.S. Patent Application Publication No. 2014/0129378;-   U.S. Patent Application Publication No. 2014/0131438;-   U.S. Patent Application Publication No. 2014/0131441;-   U.S. Patent Application Publication No. 2014/0131443;-   U.S. Patent Application Publication No. 2014/0131444;-   U.S. Patent Application Publication No. 2014/0131445;-   U.S. Patent Application Publication No. 2014/0131448;-   U.S. Patent Application Publication No. 2014/0133379;-   U.S. Patent Application Publication No. 2014/0136208;-   U.S. Patent Application Publication No. 2014/0140585;-   U.S. Patent Application Publication No. 2014/0151453;-   U.S. Patent Application Publication No. 2014/0152882;-   U.S. Patent Application Publication No. 2014/0158770;-   U.S. Patent Application Publication No. 2014/0159869;-   U.S. Patent Application Publication No. 2014/0166755;-   U.S. Patent Application Publication No. 2014/0166759;-   U.S. Patent Application Publication No. 2014/0168787;-   U.S. Patent Application Publication No. 2014/0175165;-   U.S. Patent Application Publication No. 2014/0175172;-   U.S. Patent Application Publication No. 2014/0191644;-   U.S. Patent Application Publication No. 2014/0191913;-   U.S. Patent Application Publication No. 2014/0197238;-   U.S. Patent Application Publication No. 2014/0197239;-   U.S. Patent Application Publication No. 2014/0197304;-   U.S. Patent Application Publication No. 2014/0214631;-   U.S. Patent Application Publication No. 2014/0217166;-   U.S. Patent Application Publication No. 2014/0217180;-   U.S. Patent Application Publication No. 2014/0231500;-   U.S. Patent Application Publication No. 2014/0232930;-   U.S. Patent Application Publication No. 2014/0247315;-   U.S. Patent Application Publication No. 2014/0263493;-   U.S. Patent Application Publication No. 2014/0263645;-   U.S. Patent Application Publication No. 2014/0267609;-   U.S. Patent Application Publication No. 2014/0270196;-   U.S. Patent Application Publication No. 2014/0270229;-   U.S. Patent Application Publication No. 2014/0278387;-   U.S. Patent Application Publication No. 2014/0278391;-   U.S. Patent Application Publication No. 2014/0282210;-   U.S. Patent Application Publication No. 2014/0284384;-   U.S. Patent Application Publication No. 2014/0288933;-   U.S. Patent Application Publication No. 2014/0297058;-   U.S. Patent Application Publication No. 2014/0299665;-   U.S. Patent Application Publication No. 2014/0312121;-   U.S. Patent Application Publication No. 2014/0319220;-   U.S. Patent Application Publication No. 2014/0319221;-   U.S. Patent Application Publication No. 2014/0326787;-   U.S. Patent Application Publication No. 2014/0332590;-   U.S. Patent Application Publication No. 2014/0344943;-   U.S. Patent Application Publication No. 2014/0346233;-   U.S. Patent Application Publication No. 2014/0351317;-   U.S. Patent Application Publication No. 2014/0353373;-   U.S. Patent Application Publication No. 2014/0361073;-   U.S. Patent Application Publication No. 2014/0361082;-   U.S. Patent Application Publication No. 2014/0362184;-   U.S. Patent Application Publication No. 2014/0363015;-   U.S. Patent Application Publication No. 2014/0369511;-   U.S. Patent Application Publication No. 2014/0374483;-   U.S. Patent Application Publication No. 2014/0374485;-   U.S. Patent Application Publication No. 2015/0001301;-   U.S. Patent Application Publication No. 2015/0001304;-   U.S. Patent Application Publication No. 2015/0003673;-   U.S. Patent Application Publication No. 2015/0009338;-   U.S. Patent Application Publication No. 2015/0009610;-   U.S. Patent Application Publication No. 2015/0014416;-   U.S. Patent Application Publication No. 2015/0021397;-   U.S. Patent Application Publication No. 2015/0028102;-   U.S. Patent Application Publication No. 2015/0028103;-   U.S. Patent Application Publication No. 2015/0028104;-   U.S. Patent Application Publication No. 2015/0029002;-   U.S. Patent Application Publication No. 2015/0032709;-   U.S. Patent Application Publication No. 2015/0039309;-   U.S. Patent Application Publication No. 2015/0039878;-   U.S. Patent Application Publication No. 2015/0040378;-   U.S. Patent Application Publication No. 2015/0048168;-   U.S. Patent Application Publication No. 2015/0049347;-   U.S. Patent Application Publication No. 2015/0051992;-   U.S. Patent Application Publication No. 2015/0053766;-   U.S. Patent Application Publication No. 2015/0053768;-   U.S. Patent Application Publication No. 2015/0053769;-   U.S. Patent Application Publication No. 2015/0060544;-   U.S. Patent Application Publication No. 2015/0062366;-   U.S. Patent Application Publication No. 2015/0063215;-   U.S. Patent Application Publication No. 2015/0063676;-   U.S. Patent Application Publication No. 2015/0069130;-   U.S. Patent Application Publication No. 2015/0071819;-   U.S. Patent Application Publication No. 2015/0083800;-   U.S. Patent Application Publication No. 2015/0086114;-   U.S. Patent Application Publication No. 2015/0088522;-   U.S. Patent Application Publication No. 2015/0096872;-   U.S. Patent Application Publication No. 2015/0099557;-   U.S. Patent Application Publication No. 2015/0100196;-   U.S. Patent Application Publication No. 2015/0102109;-   U.S. Patent Application Publication No. 2015/0115035;-   U.S. Patent Application Publication No. 2015/0127791;-   U.S. Patent Application Publication No. 2015/0128116;-   U.S. Patent Application Publication No. 2015/0129659;-   U.S. Patent Application Publication No. 2015/0133047;-   U.S. Patent Application Publication No. 2015/0134470;-   U.S. Patent Application Publication No. 2015/0136851;-   U.S. Patent Application Publication No. 2015/0136854;-   U.S. Patent Application Publication No. 2015/0142492;-   U.S. Patent Application Publication No. 2015/0144692;-   U.S. Patent Application Publication No. 2015/0144698;-   U.S. Patent Application Publication No. 2015/0144701;-   U.S. Patent Application Publication No. 2015/0149946;-   U.S. Patent Application Publication No. 2015/0161429;-   U.S. Patent Application Publication No. 2015/0169925;-   U.S. Patent Application Publication No. 2015/0169929;-   U.S. Patent Application Publication No. 2015/0178523;-   U.S. Patent Application Publication No. 2015/0178534;-   U.S. Patent Application Publication No. 2015/0178535;-   U.S. Patent Application Publication No. 2015/0178536;-   U.S. Patent Application Publication No. 2015/0178537;-   U.S. Patent Application Publication No. 2015/0181093;-   U.S. Patent Application Publication No. 2015/0181109;-   U.S. patent application Ser. No. 13/367,978 for a Laser Scanning    Module Employing an Elastomeric U-Hinge Based Laser Scanning    Assembly, filed Feb. 7, 2012 (Feng et al.);-   U.S. patent application No. 29/458,405 for an Electronic Device,    filed Jun. 19, 2013 (Fitch et al.);-   U.S. patent application Ser. No. 29/459,620 for an Electronic Device    Enclosure, filed Jul. 2, 2013 (London et al.);-   U.S. patent application Ser. No. 29/468,118 for an Electronic Device    Case, filed Sep. 26, 2013 (Oberpriller et al.);-   U.S. patent application Ser. No. 14/150,393 for Indicia-reader    Having Unitary Construction Scanner, filed Jan. 8, 2014 (Colavito et    al.);-   U.S. patent application Ser. No. 14/200,405 for Indicia Reader for    Size-Limited Applications filed Mar. 7, 2014 (Feng et al.);-   U.S. patent application Ser. No. 14/231,898 for Hand-Mounted    Indicia-Reading Device with Finger Motion Triggering filed Apr. 1,    2014 (Van Horn et al.);-   U.S. patent application Ser. No. 29/486,759 for an Imaging Terminal,    filed Apr. 2, 2014 (Oberpriller et al.);-   U.S. patent application Ser. No. 14/257,364 for Docking System and    Method Using Near Field Communication filed Apr. 21, 2014    (Showering);-   U.S. patent application Ser. No. 14/264,173 for Autofocus Lens    System for Indicia Readers filed Apr. 29, 2014 (Ackley et al.);-   U.S. patent application Ser. No. 14/277,337 for MULTIPURPOSE OPTICAL    READER, filed May 14, 2014 (Jovanovski et al.);-   U.S. patent application Ser. No. 14/283,282 for TERMINAL HAVING    ILLUMINATION AND FOCUS CONTROL filed May 21, 2014 (Liu et al.);-   U.S. patent application Ser. No. 14/327,827 for a MOBILE-PHONE    ADAPTER FOR ELECTRONIC TRANSACTIONS, filed Jul. 10, 2014 (Hejl);-   U.S. patent application Ser. No. 14/334,934 for a SYSTEM AND METHOD    FOR INDICIA VERIFICATION, filed Jul. 18, 2014 (Hejl);-   U.S. patent application Ser. No. 14/339,708 for LASER SCANNING CODE    SYMBOL READING SYSTEM, filed Jul. 24, 2014 (Xian et al.);-   U.S. patent application Ser. No. 14/340,627 for an AXIALLY    REINFORCED FLEXIBLE SCAN ELEMENT, filed Jul. 25, 2014 (Rueblinger et    al.);-   U.S. patent application Ser. No. 14/446,391 for MULTIFUNCTION POINT    OF SALE APPARATUS WITH OPTICAL SIGNATURE CAPTURE filed Jul. 30, 2014    (Good et al.);-   U.S. patent application Ser. No. 14/452,697 for INTERACTIVE INDICIA    READER, filed Aug. 6, 2014 (Todeschini);-   U.S. patent application Ser. No. 14/453,019 for DIMENSIONING SYSTEM    WITH GUIDED ALIGNMENT, filed Aug. 6, 2014 (Li et al.);-   U.S. patent application Ser. No. 14/462,801 for MOBILE COMPUTING    DEVICE WITH DATA COGNITION SOFTWARE, filed on Aug. 19, 2014    (Todeschini et al.);-   U.S. patent application Ser. No. 14/483,056 for VARIABLE DEPTH OF    FIELD BARCODE SCANNER filed Sep. 10, 2014 (McCloskey et al.);-   U.S. patent application Ser. No. 14/513,808 for IDENTIFYING    INVENTORY ITEMS IN A STORAGE FACILITY filed Oct. 14, 2014 (Singel et    al.);-   U.S. patent application Ser. No. 14/519,195 for HANDHELD    DIMENSIONING SYSTEM WITH FEEDBACK filed Oct. 21, 2014 (Laffargue et    al.);-   U.S. patent application Ser. No. 14/519,179 for DIMENSIONING SYSTEM    WITH MULTIPATH INTERFERENCE MITIGATION filed Oct. 21, 2014 (Thuries    et al.);-   U.S. patent application Ser. No. 14/519,211 for SYSTEM AND METHOD    FOR DIMENSIONING filed Oct. 21, 2014 (Ackley et al.);-   U.S. patent application Ser. No. 14/519,233 for HANDHELD DIMENSIONER    WITH DATA-QUALITY INDICATION filed Oct. 21, 2014 (Laffargue et al.);-   U.S. patent application Ser. No. 14/519,249 for HANDHELD    DIMENSIONING SYSTEM WITH MEASUREMENT-CONFORMANCE FEEDBACK filed Oct.    21, 2014 (Ackley et al.);-   U.S. patent application Ser. No. 14/527,191 for METHOD AND SYSTEM    FOR RECOGNIZING SPEECH USING WILDCARDS IN AN EXPECTED RESPONSE filed    Oct. 29, 2014 (Braho et al.);-   U.S. patent application Ser. No. 14/529,563 for ADAPTABLE INTERFACE    FOR A MOBILE COMPUTING DEVICE filed Oct. 31, 2014 (Schoon et al.);-   U.S. patent application Ser. No. 14/529,857 for BARCODE READER WITH    SECURITY FEATURES filed Oct. 31, 2014 (Todeschini et al.);-   U.S. patent application Ser. No. 14/398,542 for PORTABLE ELECTRONIC    DEVICES HAVING A SEPARATE LOCATION TRIGGER UNIT FOR USE IN    CONTROLLING AN APPLICATION UNIT filed Nov. 3, 2014 (Bian et al.);-   U.S. patent application Ser. No. 14/531,154 for DIRECTING AN    INSPECTOR THROUGH AN INSPECTION filed Nov. 3, 2014 (Miller et al.);-   U.S. patent application Ser. No. 14/533,319 for BARCODE SCANNING    SYSTEM USING WEARABLE DEVICE WITH EMBEDDED CAMERA filed Nov. 5, 2014    (Todeschini);-   U.S. patent application Ser. No. 14/535,764 for CONCATENATED    EXPECTED RESPONSES FOR SPEECH RECOGNITION filed Nov. 7, 2014 (Braho    et al.);-   U.S. patent application Ser. No. 14/568,305 for AUTO-CONTRAST    VIEWFINDER FOR AN INDICIA READER filed Dec. 12, 2014 (Todeschini);-   U.S. patent application Ser. No. 14/573,022 for DYNAMIC DIAGNOSTIC    INDICATOR GENERATION filed Dec. 17, 2014 (Goldsmith);-   U.S. patent application Ser. No. 14/578,627 for SAFETY SYSTEM AND    METHOD filed Dec. 22, 2014 (Ackley et al.);-   U.S. patent application Ser. No. 14/580,262 for MEDIA GATE FOR    THERMAL TRANSFER PRINTERS filed Dec. 23, 2014 (Bowles);-   U.S. patent application Ser. No. 14/590,024 for SHELVING AND PACKAGE    LOCATING SYSTEMS FOR DELIVERY VEHICLES filed Jan. 6, 2015 (Payne);-   U.S. patent application Ser. No. 14/596,757 for SYSTEM AND METHOD    FOR DETECTING BARCODE PRINTING ERRORS filed Jan. 14, 2015 (Ackley);-   U.S. patent application Ser. No. 14/416,147 for OPTICAL READING    APPARATUS HAVING VARIABLE SETTINGS filed Jan. 21, 2015 (Chen et    al.);-   U.S. patent application Ser. No. 14/614,706 for DEVICE FOR    SUPPORTING AN ELECTRONIC TOOL ON A USER'S HAND filed Feb. 5, 2015    (Oberpriller et al.);-   U.S. patent application Ser. No. 14/614,796 for CARGO APPORTIONMENT    TECHNIQUES filed Feb. 5, 2015 (Morton et al.);-   U.S. patent application Ser. No. 29/516,892 for TABLE COMPUTER filed    Feb. 6, 2015 (Bidwell et al.);-   U.S. patent application Ser. No. 14/619,093 for METHODS FOR TRAINING    A SPEECH RECOGNITION SYSTEM filed Feb. 11, 2015 (Pecorari);-   U.S. patent application Ser. No. 14/628,708 for DEVICE, SYSTEM, AND    METHOD FOR DETERMINING THE STATUS OF CHECKOUT LANES filed Feb. 23,    2015 (Todeschini);-   U.S. patent application Ser. No. 14/630,841 for TERMINAL INCLUDING    IMAGING ASSEMBLY filed Feb. 25, 2015 (Gomez et al.);-   U.S. patent application Ser. No. 14/635,346 for SYSTEM AND METHOD    FOR RELIABLE STORE-AND-FORWARD DATA HANDLING BY ENCODED INFORMATION    READING TERMINALS filed Mar. 2, 2015 (Sevier);-   U.S. patent application Ser. No. 29/519,017 for SCANNER filed Mar.    2, 2015 (Zhou et al.);-   U.S. patent application Ser. No. 14/405,278 for DESIGN PATTERN FOR    SECURE STORE filed Mar. 9, 2015 (Zhu et al.);-   U.S. patent application Ser. No. 14/660,970 for DECODABLE INDICIA    READING TERMINAL WITH COMBINED ILLUMINATION filed Mar. 18, 2015    (Kearney et al.);-   U.S. patent application Ser. No. 14/661,013 for REPROGRAMMING SYSTEM    AND METHOD FOR DEVICES INCLUDING PROGRAMMING SYMBOL filed Mar. 18,    2015 (Soule et al.);-   U.S. patent application Ser. No. 14/662,922 for MULTIFUNCTION POINT    OF SALE SYSTEM filed Mar. 19, 2015 (Van Horn et al.);-   U.S. patent application Ser. No. 14/663,638 for VEHICLE MOUNT    COMPUTER WITH CONFIGURABLE IGNITION SWITCH BEHAVIOR filed Mar. 20,    2015 (Davis et al.);-   U.S. patent application Ser. No. 14/664,063 for METHOD AND    APPLICATION FOR SCANNING A BARCODE WITH A SMART DEVICE WHILE    CONTINUOUSLY RUNNING AND DISPLAYING AN APPLICATION ON THE SMART    DEVICE DISPLAY filed Mar. 20, 2015 (Todeschini);-   U.S. patent application Ser. No. 14/669,280 for TRANSFORMING    COMPONENTS OF A WEB PAGE TO VOICE PROMPTS filed Mar. 26, 2015    (Funyak et al.);-   U.S. patent application Ser. No. 14/674,329 for AIMER FOR BARCODE    SCANNING filed Mar. 31, 2015 (Bidwell);-   U.S. patent application Ser. No. 14/676,109 for INDICIA READER filed    Apr. 1, 2015 (Huck);-   U.S. patent application Ser. No. 14/676,327 for DEVICE MANAGEMENT    PROXY FOR SECURE DEVICES filed Apr. 1, 2015 (Yeakley et al.);-   U.S. patent application Ser. No. 14/676,898 for NAVIGATION SYSTEM    CONFIGURED TO INTEGRATE MOTION SENSING DEVICE INPUTS filed Apr. 2,    2015 (Showering);-   U.S. patent application Ser. No. 14/679,275 for DIMENSIONING SYSTEM    CALIBRATION SYSTEMS AND METHODS filed Apr. 6, 2015 (Laffargue et    al.);-   U.S. patent application Ser. No. 29/523,098 for HANDLE FOR A TABLET    COMPUTER filed Apr. 7, 2015 (Bidwell et al.);-   U.S. patent application Ser. No. 14/682,615 for SYSTEM AND METHOD    FOR POWER MANAGEMENT OF MOBILE DEVICES filed Apr. 9, 2015 (Murawski    et al.);-   U.S. patent application Ser. No. 14/686,822 for MULTIPLE PLATFORM    SUPPORT SYSTEM AND METHOD filed Apr. 15, 2015 (Qu et al.);-   U.S. patent application Ser. No. 14/687,289 for SYSTEM FOR    COMMUNICATION VIA A PERIPHERAL HUB filed Apr. 15, 2015 (Kohtz et    al.);-   U.S. patent application Ser. No. 29/524,186 for SCANNER filed Apr.    17, 2015 (Zhou et al.);-   U.S. patent application Ser. No. 14/695,364 for MEDICATION    MANAGEMENT SYSTEM filed Apr. 24, 2015 (Sewell et al.);-   U.S. patent application Ser. No. 14/695,923 for SECURE UNATTENDED    NETWORK AUTHENTICATION filed Apr. 24, 2015 (Kubler et al.);-   U.S. patent application Ser. No. 29/525,068 for TABLET COMPUTER WITH    REMOVABLE SCANNING DEVICE filed Apr. 27, 2015 (Schulte et al.);-   U.S. patent application Ser. No. 14/699,436 for SYMBOL READING    SYSTEM HAVING PREDICTIVE DIAGNOSTICS filed Apr. 29, 2015 (Nahill et    al.);-   U.S. patent application Ser. No. 14/702,110 for SYSTEM AND METHOD    FOR REGULATING BARCODE DATA INJECTION INTO A RUNNING APPLICATION ON    A SMART DEVICE filed May 1, 2015 (Todeschini et al.);-   U.S. patent application Ser. No. 14/702,979 for TRACKING BATTERY    CONDITIONS filed May 4, 2015 (Young et al.);-   U.S. patent application Ser. No. 14/704,050 for INTERMEDIATE LINEAR    POSITIONING filed May 5, 2015 (Charpentier et al.);-   U.S. patent application Ser. No. 14/705,012 for HANDS-FREE HUMAN    MACHINE INTERFACE RESPONSIVE TO A DRIVER OF A VEHICLE filed May 6,    2015 (Fitch et al.);-   U.S. patent application Ser. No. 14/705,407 for METHOD AND SYSTEM TO    PROTECT SOFTWARE-BASED NETWORK-CONNECTED DEVICES FROM ADVANCED    PERSISTENT THREAT filed May 6, 2015 (Hussey et al.);-   U.S. patent application Ser. No. 14/707,037 for SYSTEM AND METHOD    FOR DISPLAY OF INFORMATION USING A VEHICLE-MOUNT COMPUTER filed May    8, 2015 (Chamberlin);-   U.S. patent application Ser. No. 14/707,123 for APPLICATION    INDEPENDENT DEX/UCS INTERFACE filed May 8, 2015 (Pape);-   U.S. patent application Ser. No. 14/707,492 for METHOD AND APPARATUS    FOR READING OPTICAL INDICIA USING A PLURALITY OF DATA SOURCES filed    May 8, 2015 (Smith et al.);-   U.S. patent application Ser. No. 14/710,666 for PRE-PAID USAGE    SYSTEM FOR ENCODED INFORMATION READING TERMINALS filed May 13, 2015    (Smith);-   U.S. patent application Ser. No. 29/526,918 for CHARGING BASE filed    May 14, 2015 (Fitch et al.);-   U.S. patent application Ser. No. 14/715,672 for AUGMENTED REALITY    ENABLED HAZARD DISPLAY filed May 19, 2015 (Venkatesha et al.);-   U.S. patent application Ser. No. 14/715,916 for EVALUATING IMAGE    VALUES filed May 19, 2015 (Ackley);-   U.S. patent application Ser. No. 14/722,608 for INTERACTIVE USER    INTERFACE FOR CAPTURING A DOCUMENT IN AN IMAGE SIGNAL filed May 27,    2015 (Showering et al.);-   U.S. patent application Ser. No. 29/528,165 for IN-COUNTER BARCODE    SCANNER filed May 27, 2015 (Oberpriller et al.);-   U.S. patent application Ser. No. 14/724,134 for ELECTRONIC DEVICE    WITH WIRELESS PATH SELECTION CAPABILITY filed May 28, 2015 (Wang et    al.);-   U.S. patent application Ser. No. 14/724,849 for METHOD OF    PROGRAMMING THE DEFAULT CABLE INTERFACE SOFTWARE IN AN INDICIA    READING DEVICE filed May 29, 2015 (Barten);-   U.S. patent application Ser. No. 14/724,908 for IMAGING APPARATUS    HAVING IMAGING ASSEMBLY filed May 29, 2015 (Barber et al.);-   U.S. patent application Ser. No. 14/725,352 for APPARATUS AND    METHODS FOR MONITORING ONE OR MORE PORTABLE DATA TERMINALS    (Caballero et al.);-   U.S. patent application Ser. No. 29/528,590 for ELECTRONIC DEVICE    filed May 29, 2015 (Fitch et al.);-   U.S. patent application Ser. No. 29/528,890 for MOBILE COMPUTER    HOUSING filed Jun. 2, 2015 (Fitch et al.);-   U.S. patent application Ser. No. 14/728,397 for DEVICE MANAGEMENT    USING VIRTUAL INTERFACES CROSS-REFERENCE TO RELATED APPLICATIONS    filed Jun. 2, 2015 (Caballero);-   U.S. patent application Ser. No. 14/732,870 for DATA COLLECTION    MODULE AND SYSTEM filed Jun. 8, 2015 (Powilleit);-   U.S. patent application Ser. No. 29/529,441 for INDICIA READING    DEVICE filed Jun. 8, 2015 (Zhou et al.);-   U.S. patent application Ser. No. 14/735,717 for INDICIA-READING    SYSTEMS HAVING AN INTERFACE WITH A USER'S NERVOUS SYSTEM filed Jun.    10, 2015 (Todeschini);-   U.S. patent application Ser. No. 14/738,038 for METHOD OF AND SYSTEM    FOR DETECTING OBJECT WEIGHING INTERFERENCES filed Jun. 12, 2015    (Amundsen et al.);-   U.S. patent application Ser. No. 14/740,320 for TACTILE SWITCH FOR A    MOBILE ELECTRONIC DEVICE filed Jun. 16, 2015 (Bandringa);-   U.S. patent application Ser. No. 14/740,373 for CALIBRATING A VOLUME    DIMENSIONER filed Jun. 16, 2015 (Ackley et al.);-   U.S. patent application Ser. No. 14/742,818 for INDICIA READING    SYSTEM EMPLOYING DIGITAL GAIN CONTROL filed Jun. 18, 2015 (Xian et    al.);-   U.S. patent application Ser. No. 14/743,257 for WIRELESS MESH POINT    PORTABLE DATA TERMINAL filed Jun. 18, 2015 (Wang et al.);-   U.S. patent application Ser. No. 29/530,600 for CYCLONE filed Jun.    18, 2015 (Vargo et al);-   U.S. patent application Ser. No. 14/744,633 for IMAGING APPARATUS    COMPRISING IMAGE SENSOR ARRAY HAVING SHARED GLOBAL SHUTTER CIRCUITRY    filed Jun. 19, 2015 (Wang);-   U.S. patent application Ser. No. 14/744,836 for CLOUD-BASED SYSTEM    FOR READING OF DECODABLE INDICIA filed Jun. 19, 2015 (Todeschini et    al.);-   U.S. patent application Ser. No. 14/745,006 for SELECTIVE OUTPUT OF    DECODED MESSAGE DATA filed Jun. 19, 2015 (Todeschini et al.);-   U.S. patent application Ser. No. 14/747,197 for OPTICAL PATTERN    PROJECTOR filed Jun. 23, 2015 (Thuries et al.);-   U.S. patent application Ser. No. 14/747,490 for DUAL-PROJECTOR    THREE-DIMENSIONAL SCANNER filed Jun. 23, 2015 (Jovanovski et al.);    and-   U.S. patent application Ser. No. 14/748,446 for CORDLESS INDICIA    READER WITH A MULTIFUNCTION COIL FOR WIRELESS CHARGING AND EAS    DEACTIVATION, filed Jun. 24, 2015 (Xie et al.).

In the specification and/or figures, typical embodiments of theinvention have been disclosed. The present invention is not limited tosuch exemplary embodiments. The use of the term “and/or” includes anyand all combinations of one or more of the associated listed items. Thefigures are schematic representations and so are not necessarily drawnto scale. Unless otherwise noted, specific terms have been used in ageneric and descriptive sense and not for purposes of limitation.

The invention claimed is:
 1. A system comprising: a memory configured tostore a barcode template, wherein the barcode template comprises atleast one fixed data field and at least one variable data field, the atleast one fixed data field comprising known data common to more than onebarcode and the at least one variable data field comprising uniquevariable data; and a processor coupled to the memory, wherein theprocessor is configured to: scan a barcode comprising encoded data;sample the encoded data of the barcode into a codeword array; select thebarcode template; and apply the barcode template to the codeword arrayto correct data in areas in the codeword array that correspond to the atleast one fixed data field of the barcode template.
 2. The system ofclaim 1, wherein the processor is further configured to: perform errorcorrection on data in other areas in the decoded codeword array thatcorrespond to the at least one variable data field; and output theerror-corrected decoded codeword array, whereby readability of thebarcode is enhanced.
 3. The system of claim 1, wherein the barcodetemplate is defined by a barcode application specification.
 4. Thesystem of claim 1, wherein the at least one fixed data field comprisesone or more of a header, a field name, and a separator.
 5. The system ofclaim 1, wherein the at least one variable data field comprises one ormore of a customer name, a customer address, a customer number, a lotnumber, and a manufacturing date.
 6. The system of claim 1, wherein theprocessor is further configured to apply the barcode template afterdetermining at least one dimension of the barcode.
 7. The system ofclaim 1, wherein the processor is further configured to apply thebarcode template after determining an error correction level of thebarcode.
 8. The system of claim 1, wherein the processor is furtherconfigured to apply the barcode template after comparing the codewordarray to the barcode template.
 9. The system of claim 1, wherein thebarcode comprises one of a linear one-dimensional barcode and atwo-dimensional barcode.
 10. The system of claim 1, wherein the barcodeis in one of a PDF417 format, a 2D matrix symbology, and a data matrixformat.
 11. The system of claim 1, wherein the barcode is in one of adata matrix ECC 200 format, a data matrix 000-140 format, an Aztec codeformat, a QR code format, and a high capacity color barcode format. 12.An electronic device comprising: a barcode scanner; a memory configuredto store a barcode template, wherein the barcode template comprises atleast one fixed data field and at least one variable data field, the atleast one fixed data field comprising known data common to more than onebarcode and the at least one variable data field comprising uniquevariable data; and a barcode scanning software on the electronic device,wherein the barcode scanning software is configured to: scan a barcodecomprising encoded data; sample the encoded data of the barcode into acodeword array; select the barcode template matching a format of thescanned barcode; and apply the barcode template to the codeword array tocorrect data in areas in the codeword array that correspond to the atleast one fixed data field of the barcode template.
 13. The electronicdevice of claim 12, wherein the barcode scanning software is furtherconfigured to perform error correction on the codeword array and outputthe error-corrected codeword array.
 14. The electronic device of claim12, wherein the barcode scanning software is further configured to applythe barcode template after determining at least one dimension of thebarcode.
 15. The electronic device of claim 12, wherein the barcodescanning software is further configured to apply the barcode templateafter determining an error correction level of the barcode.
 16. Theelectronic device of claim 12, wherein the barcode scanning software isfurther configured to apply the barcode template after comparing thecodeword array to the barcode template.
 17. The electronic device ofclaim 12, wherein the barcode comprises a two-dimensional barcode. 18.The electronic device of claim 12, wherein the barcode is in one of aPDF417 format and a matrix format.
 19. The electronic device of claim12, wherein the barcode is in a data matrix format.
 20. The electronicdevice of claim 12, wherein the barcode is in one of a data matrix ECC200 format, a data matrix 000-140 format, an Aztec code format, a QRcode format, and a high capacity color barcode format.